No need for TLB or jumps
Only revision is written here.  It would be stupid to write everything else.

7F0349FC:	6952C	V0=length of command in block A0 at offset A1
	fries: AT,T6
00851021	ADDU	V0,A0,A1
904E0000	LBU	T6,0000 (V0)
2DC100FD	SLTIU	AT,T6,00FD	;normal cap is FD.  You can extend this, however
5020000C	*BEQL	AT,R0,+quit
24020001	*ADDIU	V0,R0,0001
//7F034A10:	handle string type AD
240100AD	*ADDIU	AT,R0,00AD
542E0007	*BNEL	AT,T6,+norm
3C018005	*LUI	AT,8005
00027025	*OR	T6,V0,R0	;T6=V0
80410000	*LB	AT,0000 (V0)
1420FFFE	*BNE	AT,R0,-2	;loop until NULL terminator found
24420001	*ADDIU	V0,V0,0001
03E00008	*JR	RA
004E1023	*SUBU	V0,V0,T6
//7F034A34:	normal return
002E0821	*ADDU	AT,AT,T6
90222100	*LBU	V0,2100 (AT)
//7F034A3C:	quit
03E00008	*JR	RA
00000000	*NOP
